home *** CD-ROM | disk | FTP | other *** search
- " Vim syntax file
- " Language: none; used to see highlighting
- " Maintainer: Ronald Schild <rs@scutum.de>
- " Last Change: 2001 Sep 02
- " Version: 5.4n.1
-
- " To see your current highlight settings, do
- " :so $VIMRUNTIME/syntax/hitest.vim
-
- " save global options and registers
- let s:hidden = &hidden
- let s:lazyredraw = &lazyredraw
- let s:more = &more
- let s:report = &report
- let s:shortmess = &shortmess
- let s:wrapscan = &wrapscan
- let s:register_a = @a
- let s:register_se = @/
-
- " set global options
- set hidden lazyredraw nomore report=99999 shortmess=aoOstTW wrapscan
-
- " print current highlight settings into register a
- redir @a
- highlight
- redir END
-
- " Open a new window if the current one isn't empty
- if line("$") != 1 || getline(1) != ""
- new
- endif
-
- " edit temporary file
- edit Highlight\ test
-
- " set local options
- setlocal autoindent noexpandtab formatoptions=t shiftwidth=16 noswapfile tabstop=16
- let &textwidth=&columns
-
- " insert highlight settings
- % delete
- put a
-
- " remove the colored xxx items
- g/xxx /s///e
-
- " remove color settings (not needed here)
- global! /links to/ substitute /\s.*$//e
-
- " move linked groups to the end of file
- global /links to/ move $
-
- " move linked group names to the matching preferred groups
- % substitute /^\(\w\+\)\s*\(links to\)\s*\(\w\+\)$/\3\t\2 \1/e
- global /links to/ normal mz3ElD0#$p'zdd
-
- " delete empty lines
- global /^ *$/ delete
-
- " precede syntax command
- % substitute /^[^ ]*/syn keyword &\t&/
-
- " execute syntax commands
- syntax clear
- % yank a
- @a
-
- " remove syntax commands again
- % substitute /^syn keyword //
-
- " pretty formatting
- global /^/ exe "normal Wi\<CR>\t\eAA\ex"
- global /^\S/ join
-
- " find out first syntax highlighting
- let b:various = &highlight.',:Normal,:Cursor,:,'
- let b:i = 1
- while b:various =~ ':'.substitute(getline(b:i), '\s.*$', ',', '')
- let b:i = b:i + 1
- if b:i > line("$") | break | endif
- endwhile
-
- " insert headlines
- call append(0, "Highlighting groups for various occasions")
- call append(1, "-----------------------------------------")
-
- if b:i < line("$")-1
- let b:synhead = "Syntax highlighting groups"
- if exists("hitest_filetypes")
- redir @a
- let
- redir END
- let @a = substitute(@a, 'did_\(\w\+\)_syn\w*_inits\s*#1', ', \1', 'g')
- let @a = substitute(@a, "\n\\w[^\n]*", '', 'g')
- let @a = substitute(@a, "\n", '', 'g')
- let @a = substitute(@a, '^,', '', 'g')
- if @a != ""
- let b:synhead = b:synhead." - filetype"
- if @a =~ ','
- let b:synhead = b:synhead."s"
- endif
- let b:synhead = b:synhead.":".@a
- endif
- endif
- call append(b:i+1, "")
- call append(b:i+2, b:synhead)
- call append(b:i+3, substitute(b:synhead, '.', '-', 'g'))
- endif
-
- " remove 'hls' highlighting
- nohlsearch
- normal 0
-
- " add autocommands to remove temporary file from buffer list
- aug highlighttest
- au!
- au BufUnload Highlight\ test if expand("<afile>") == "Highlight test"
- au BufUnload Highlight\ test bdelete! Highlight\ test
- au BufUnload Highlight\ test endif
- au VimLeavePre * if bufexists("Highlight test")
- au VimLeavePre * bdelete! Highlight\ test
- au VimLeavePre * endif
- aug END
-
- " we don't want to save this temporary file
- set nomodified
-
- " the following trick avoids the "Press RETURN ..." prompt
- 0 append
- .
-
- " restore global options and registers
- let &hidden = s:hidden
- let &lazyredraw = s:lazyredraw
- let &more = s:more
- let &report = s:report
- let &shortmess = s:shortmess
- let &wrapscan = s:wrapscan
- let @a = s:register_a
-
- " restore last search pattern
- call histdel("search", -1)
- let @/ = s:register_se
-
- " remove variables
- unlet s:hidden s:lazyredraw s:more s:report s:shortmess
- unlet s:wrapscan s:register_a s:register_se
-
- " vim: ts=8
-